Media content delivery systems, such as Internet-based television systems, are designed to stream video data to a client device when requested by a user for immediate live viewing, or download the video data in advance of when the user may want to watch the video after it has been recorded. In addition, a user can start playback of a video that is still downloading before the download is complete. However, some conventional video data streaming techniques are not able to provide a consistent audio and/or video quality for playback at a client device. For example, current adaptive streaming techniques may download segments of a video over a network from various media content sources at a number of different quality levels, each having a different bandwidth requirement. Due to unpredictable network bandwidth, adaptive streaming download algorithms rely on low quality video segments to maintain playback of a video without perceptible delay to a viewer, although the visual quality during playback may be a noticeable drawback to the viewer.
Inconsistent video quality is primarily due to the unpredictable network bandwidth, as well as variations in the bandwidth that is needed for video data compressed at a constant quality level. These bandwidth variations can be a result of variations in video complexity, such as a relatively high bandwidth for video data that includes complex scenes. For example, an action sequence in a movie that includes motion and/or fast changing scenes adds to the video complexity and increases bandwidth requirements to download segments of the video that includes the complex scenes. In addition, conventional playback systems buffer video data consecutively (e.g., in the order in which it is received) in an attempt to even out the variations in the video quality. However, this technique becomes ineffective when a user initiates non-linear playback of the video data, such as when skipping or jumping between chapters.